package com.zone.sdk.isd.util;

import android.graphics.Color;

/**
 * @Author: pkqlqx
 * @CreateDate: 2021/12/18 11:12
 * @Description:
 */
public class ISDColorUtil {


    /**
     * 获取ISD展示侧颜色
     * @param templateColor 模板颜色
     * @param shapeColor    画笔颜色
     * @return  展示色
     */
    public static int getIsdUIColor(int templateColor, int shapeColor){
        int[] templateRGB = ColorUtil.getRGB(templateColor);
        int[] shapeRGBs = ColorUtil.getRGB(shapeColor);
        int color = Color.TRANSPARENT;
        if (templateRGB[0] <= 200 && templateRGB[1] > 200 && templateRGB[2] > 200){
            //模板支持黄、白双灯（黄蓝通道）
            if (shapeRGBs[0] <= 200 && shapeRGBs[1] > 200 && shapeRGBs[2] > 200){
                //UI青色 点亮 黄白双灯 返回青色
                color = shapeColor;
            }else if (shapeRGBs[0] > 200 && shapeRGBs[1] > 200 && shapeRGBs[2] <= 200){
                //UI黄色 点亮 黄灯 返回黄色
                color = shapeColor;
            }else if (shapeRGBs[0] > 200 && shapeRGBs[1] > 200 && shapeRGBs[2] > 200){
                //UI白色 点亮 白灯 返回白色
                color = shapeColor;
            }
        }else if(templateRGB[0] > 200 && templateRGB[1] <= 200 && templateRGB[2] <= 200){
            //模板支持红灯（红色通道） 强制返回红灯
            if (shapeRGBs[0] > 200 || shapeRGBs[1] > 200 || shapeRGBs[2] > 200){
                //强制返回红灯
                color = templateColor;
            }
        }else if(templateRGB[0] <= 200 && templateRGB[1] > 200 && templateRGB[2] <= 200){
            //模板支持黄灯（绿色通道）
            if (shapeRGBs[0] > 200 && shapeRGBs[1] > 200 && shapeRGBs[2] <= 200){
                //UI黄色 点亮黄灯 返回黄色
                color = shapeColor;
            }
        }else if(templateRGB[0] <= 200 && templateRGB[1] <= 200 && templateRGB[2] > 200){
            //模板支持白灯（蓝色通道）
            if (shapeRGBs[0] > 200 && shapeRGBs[1] > 200 && shapeRGBs[2] > 200){
                color = shapeColor;
            }
        }else if(templateRGB[0] > 200 && templateRGB[1] > 200 && templateRGB[2] <= 200){
            //模板支持黄灯(红+黄) UI点亮黄灯 返回黄色
            if (shapeRGBs[0] > 200 && shapeRGBs[1] > 200 && shapeRGBs[2] <= 200){
                color = shapeColor;
            }else if (shapeRGBs[0] > 200 && shapeRGBs[1] <= 200 && shapeRGBs[2] <= 200){
                color = shapeColor;
            }
        }
        return color;
    }

    /**
     * 获取ISD投放侧色值
     * R  红色通道
     * G  黄灯通道
     * B  白灯通道
     * GB 黄白通道
     * @param templateColor
     * @param shapeColor
     * @return
     */
    public static int getIsdPlayColor(int templateColor, int shapeColor){
        int[] shapeRGBs = ColorUtil.getRGB(shapeColor);
        int color = Color.TRANSPARENT;
        if (shapeRGBs[0] > 200 && shapeRGBs[1] <= 200 && shapeRGBs[2] <= 200){
            //UI红色 点亮红灯 返回红色
            color = Color.rgb(shapeRGBs[0], 0, 0); //templateColor;
        }else if (shapeRGBs[0] <= 200 && shapeRGBs[1] > 200 && shapeRGBs[2] > 200){
            //UI青色 点亮黄白双灯 返回模板青色
            color = Color.rgb(0, shapeRGBs[1], shapeRGBs[2]); //templateColor;
        }else if (shapeRGBs[0] > 200 && shapeRGBs[1] > 200 && shapeRGBs[2] <= 200){
            //UI黄色 点亮黄灯 返回绿色
            color = Color.rgb(0, shapeRGBs[1], 0); //Color.GREEN;
        }else if (shapeRGBs[0] > 200 && shapeRGBs[1] > 200 && shapeRGBs[2] > 200){
            //UI白色 点亮白灯 返回蓝色
            color = Color.rgb(0, 0, shapeRGBs[2]); //Color.BLUE;
        }
        return color;
    }

    /**
     * 获取ISD投放侧色值 区分前后灯
     * R  红色通道
     * G  黄灯通道
     * B  白灯通道
     * GB 黄白通道
     * @param templateColor
     * @param shapeColor
     * @return
     */
    public static int getIsdPlayColor(int templateColor, int shapeColor, boolean isFront){
        int[] shapeRGBs = ColorUtil.getRGB(shapeColor);
        int[] templateRGB = ColorUtil.getRGB(templateColor);
        int color = Color.TRANSPARENT;
        if (isFront){
            if (shapeRGBs[0] > 200 && shapeRGBs[1] <= 200 && shapeRGBs[2] <= 200){
                //UI红色 点亮红灯 返回红色
                color = Color.rgb(shapeRGBs[0], 0, 0); //templateColor;
            }else if (shapeRGBs[0] <= 200 && shapeRGBs[1] > 200 && shapeRGBs[2] > 200){
                //UI青色 点亮黄白双灯 返回模板青色
                color = Color.rgb(0, shapeRGBs[1], shapeRGBs[2]); //templateColor;
            }else if (shapeRGBs[0] > 200 && shapeRGBs[1] > 200 && shapeRGBs[2] <= 200){
                //UI黄色 点亮黄灯 返回绿色
                color = Color.rgb(0, shapeRGBs[1], 0); //Color.GREEN;
            }else if (shapeRGBs[0] > 200 && shapeRGBs[1] > 200 && shapeRGBs[2] > 200){
                //UI白色 点亮白灯 返回蓝色
                color = Color.rgb(0, 0, shapeRGBs[2]); //Color.BLUE;
            }
        }else {
            if(templateRGB[0] > 200 && templateRGB[1] > 200 && templateRGB[2] <= 200){
                if (shapeRGBs[0] > 200 && shapeRGBs[1] <= 200 && shapeRGBs[2] <= 200){
                    //UI红色 点亮红灯 返回红色
                    color = Color.rgb(shapeRGBs[0], 0, 0); //templateColor;
                }else if (shapeRGBs[0] > 200 && shapeRGBs[1] > 200 && shapeRGBs[2] <= 200){
                    //UI红色 点亮红灯 返回红色
                    color = Color.rgb(shapeRGBs[0], shapeRGBs[1], 0); //templateColor;
                }
            }else if(templateRGB[0] > 200 && templateRGB[1] <= 200 && templateRGB[2] <= 200){
                if (shapeRGBs[0] > 200){
                    color = Color.rgb(shapeRGBs[0], 0, 0); //templateColor;
                }
            }
//            else {
//                if (shapeRGBs[0] > 200 && shapeRGBs[1] <= 200 && shapeRGBs[2] <= 200){
//                    //UI红色 点亮红灯 返回红色
//                    color = Color.rgb(shapeRGBs[0], 0, 0); //templateColor;
//                }else if (shapeRGBs[0] <= 200 && shapeRGBs[1] > 200 && shapeRGBs[2] > 200){
//                    //UI青色 点亮黄白双灯 返回模板青色
//                    color = Color.rgb(0, shapeRGBs[1], shapeRGBs[2]); //templateColor;
//                }else if (shapeRGBs[0] > 200 && shapeRGBs[1] > 200 && shapeRGBs[2] <= 200){
//                    //UI黄色 点亮黄灯 返回绿色
//                    color = Color.rgb(0, shapeRGBs[1], 0); //Color.GREEN;
//                }else if (shapeRGBs[0] > 200 && shapeRGBs[1] > 200 && shapeRGBs[2] > 200){
//                    //UI白色 点亮白灯 返回蓝色
//                    color = Color.rgb(0, 0, shapeRGBs[2]); //Color.BLUE;
//                }
//            }
        }
        return color;
    }

}
